Continuation lines
(following a line ending with $) can receive a fixed
indentation offset from the main level, but in several situations
IDLWAVE can use a special form of indentation which aligns
continued statements more naturally. Special indentation is
calculated for continued routine definition statements and calls,
enclosing parentheses (like function calls, structure/class
definitions, explicit structures or lists, etc.), and continued
assignments. An attempt is made to line up with the first
non-whitespace character after the relevant opening punctuation
mark
(,,(,{,[,=).
For lines without any non-comment characters on the line with the
opening punctuation, the continued line(s) are aligned just past
the punctuation. An example:
function foo, a, b, $
c, d
bar = sin( a + b + $
c + d)
end
The only drawback to this special continued statement indentation is that it consumes more space, e.g., for long function names or left hand sides of an assignment:
function thisfunctionnameisverylongsoitwillleavelittleroom, a, b, $
c, d
You can instruct IDLWAVE when to avoid using this special
continuation indentation by setting the variable
idlwave-max-extra-continuation-indent, which
specifies the maximum additional indentation beyond the basic
indent to be tolerated, otherwise defaulting to a fixed-offset
from the enclosing indent (the size of which offset is set in
idlwave-continuation-indent). As a special case,
continuations of routine calls without any arguments or keywords
will not align the continued line, under the assumption
that you continued because you needed the space.
Also, since the indentation level can be somewhat dynamic in
continued statements with special continuation indentation,
especially if idlwave-max-extra-continuation-indent
is small, the key C-u <TAB> will re-indent all
lines in the current statement. Note that
idlwave-indent-to-open-paren, if
non-nil, overrides the
idlwave-max-extra-continuation-indent limit, for
parentheses only, forcing them always to line up.
2)Extra indentation applied to normal continuation lines.
20)The maximum additional indentation (over the basic continuation-indent) that will be permitted for special continues. To effectively disable special continuation indentation, set to
0. To enable it constantly, set to a large number (like100). Note that the indentation in a long continued statement never decreases from line to line, outside of nested parentheses statements.